Param(
  [switch]$Install7Zip,
  [switch]$InstallPython,
  [string]$PythonVersion = '3.11'
)

function Require-Tool($name) {
  $exists = (Get-Command $name -ErrorAction SilentlyContinue) -ne $null
  if (-not $exists) { return $false } else { return $true }
}

Write-Host "[Setup] Windows 环境准备（成员）" -ForegroundColor Cyan

if (-not (Require-Tool 'winget')) {
  Write-Warning "未发现 winget。请先更新到 Windows 10/11 最新或从 Microsoft Store 安装 App Installer。"
  Write-Host "参考：在浏览器搜索 'App Installer winget' 安装。" -ForegroundColor Yellow
  exit 1
}

Write-Host "安装 ffmpeg（抽帧工具）..." -ForegroundColor Green
winget install -e --id Gyan.FFmpeg --source winget --accept-source-agreements --accept-package-agreements

if ($Install7Zip) {
  Write-Host "安装 7-Zip（可选，分卷压缩）..." -ForegroundColor Green
  winget install -e --id 7zip.7zip --source winget --accept-source-agreements --accept-package-agreements
}

if ($InstallPython) {
  Write-Host "安装 Python $PythonVersion（可选，仅用于本地自检脚本）..." -ForegroundColor Green
  if ($PythonVersion -eq '3.11') {
    winget install -e --id Python.Python.3.11 --source winget --accept-source-agreements --accept-package-agreements
  } else {
    Write-Host "请在 winget 上查找你需要的 Python 版本，或安装 3.11。" -ForegroundColor Yellow
  }
}

Write-Host "设置脚本执行策略（当前用户）..." -ForegroundColor Green
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned -Force

Write-Host "完成。下一步：" -ForegroundColor Cyan
Write-Host "1) 克隆或解压仓库后，进入仓库根目录。" -ForegroundColor Yellow
Write-Host "2) 运行抽帧：powershell -ExecutionPolicy Bypass -File scripts/extract_frames.ps1 -Input <视频或目录> -OutRoot <输出> -Fps 3 -ScaleH 720 -Owner <你的名字>" -ForegroundColor Yellow
Write-Host "3) 上传 <视频名>/ 文件夹或打包 zip 到 UGREENLink：Yolo训练集/03_frames_raw" -ForegroundColor Yellow

